package com.redoor.app.stake.basicdata.service;


import com.redoor.app.stake.basicdata.model.BaseParkingArea;
import com.redoor.app.stake.basicdata.model.BaseStation;
import com.yotouch.app.stake.model.Station;

import java.util.List;

/**
 * 站数据缓存服务封装类，包含一系列关联KEY，后续所有的站相关缓存操作统一服务类
 * Created by wangjunlei on 2018/1/30.
 */
public interface BaseStationRedisService {
    /**
     * 添加或更新station数据对象
     * @param uuid
     * @param stationInfo
     * @return
     */
    public boolean modifyStationInfo(String uuid, BaseStation stationInfo);

    /**
     * 根据站编号获取站uuid
     * @param stationno
     * @return
     */
    String getStationUuidByStationNo(String stationno);

    /**
     * 删除station数据对象
     * @param uuid
     * @return
     */
    public boolean deleteStationInfo(String uuid);

    /**
     * 判断是否存在
     * @param uuid
     * @return
     */
    public boolean isExistsStation(String uuid);

    /**
     * 获取station对象
     * @param uuid
     * @return
     */
    public BaseStation getStationInfo(String uuid);

    /**
     *
     * @param uuid
     * @return
     */
    Station getStationForHsf(String uuid);

    /**
     * 设置HSF接口站对象到REDIS
     * @param stationList
     * @return
     */
    public boolean HSetHsfStation(List<Station> stationList);

    /**
     * 删除HSF站信息
     * @param uuid 为空则删除全部
     */
    void removeHsfStation(String uuid);

    /**
     * 获取站下停车区列表缓存
     * @param stationuuid
     * @return
     */
    List<BaseParkingArea> getParkingAreaList(String stationuuid);

    /**
     * 设置站下的停车区缓存
     * @param stationuuid
     */
    void setParkingAreaList(String stationuuid,List<BaseParkingArea> parkingAreas);

    /**
     * 删除站下停车区缓存
     * @param stationuuid
     */
    void removeParkingAreaList(String stationuuid);

    /**
     * 根据地区编码获取站编码
     * @param districtcode
     * @return
     */
    String getOutStationNo(String districtcode);


}
